leetcode/100-n/223. 矩形面积.md
https://leetcode-cn.com/problems/rectangle-area/
提交日期是,2019/08/25 01:31,之前写的现在补充进来
class area:
def __init__(self,a,b,c,d):
self.arr = {}
self.arr['left'] = a #left
self.arr['bottom'] = b #bottom
self.arr['right'] = c #right
self.arr['top'] = d #top
#计算面积
def calcArea(self):
chang = abs(self.arr['right'] - self.arr['left'])
gao = abs(self.arr['top'] - self.arr['bottom'])
return chang * gao
#两个矩形相交的面积
def calcOverlap(self,ar):
if ar.arr['left'] >= self.arr['right'] or ar.arr['right'] <= self.arr['left']:
return 0
if ar.arr['bottom'] >= self.arr['top'] or ar.arr['top'] <= self.arr['bottom']:
return 0
xlist = [ar.arr['left'],ar.arr['right'],self.arr['left'],self.arr['right']]
ylist = [ar.arr['top'],ar.arr['bottom'],self.arr['top'],self.arr['bottom']]
xlist.sort()
ylist.sort()
area_ = area(xlist[1],ylist[1],xlist[2],ylist[2])
return area_.calcArea()
class Solution:
def computeArea(self, A: int, B: int, C: int, D: int, E: int, F: int, G: int, H: int) -> int:
areaA = area(A,B,C,D)
areaB = area(E,F,G,H)
#计算重叠面积
areaC = areaA.calcOverlap(areaB)
return areaA.calcArea() + areaB.calcArea() - areaC